#include "comm.hpp"
#include <unistd.h>
int main()
{
    key_t k = GetKey();
    printf("key : 0x%x\n",k);

    int shmid = get_shm(k);
    printf("shmid : %d\n",shmid);

    //sleep(5);

    char* start = (char*)attchshm(shmid);
    //这里的start就是我们获取的共享内存，也相当于我们用户自己定义的缓冲区
    printf("attch start : %p\n",start);
    //sleep(5);


    const char* message = "hello server,my name is client,我正在和你通信！";
    pid_t id = getpid();
    int cnt = 1;
    // //以前的写法
    // char buffer[2048];
    // while(true)
    // {
    //     snprintf(buffer,sizeof(buffer),"%s[pid:%d][消息编号:%d]",message,id,cnt++);
    //     memcpy(start,buffer,strlen(buffer)+1);
    //     //将我们buffer里面准备好的消息拷贝到start里面就相当于发送了，因为server看得到
    // }
    //////既然你都是共享内存了，我直接把消息打到statr里面server不就自动看到了？
    while(true)
    {
        sleep(1);
        //snprintf会给我们默认添加\n ！！！！！！！！
        snprintf(start,MAX_SIZE,"%s[pid:%d][消息编号:%d]",message,id,cnt++);
    }

    detachshm(start);
    //sleep(5);

    //不需要删除，由server删除
    return 0;
}